import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class JedisRedis {
    private static JedisPool jedisPool;

    static {
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(50);         //连接池最大活动连接数
        config.setMaxIdle(10);          //连接池中的最大空闲连接数
        config.setMinIdle(7);           //连接池中最小的空闲连接数
        config.setMaxWaitMillis(1000);  //获取资源的等待时间
        config.setTestOnBorrow(true);   //获取资源时是否验证资源的有效性

        //创建Jedis连接池
        jedisPool = new JedisPool(
                config,
                "127.0.0.1",
                6379,
                10000,
                null,
                0
        );
    }
    public boolean set(String key,String value){
        Jedis jedis=null;
        try {
            jedis=jedisPool.getResource();//从池中获取Jedis实例
            jedis.set(key,value);
            return true;
        }catch (Exception e){
            e.printStackTrace();
            return false;
        }finally {
            //返回到连接池
            if (jedis !=null){
                jedis.close();
            }
        }


    }
    public String get(String key){
        String value=null;
        Jedis jedis=null;
        try {
            jedis=jedisPool.getResource();
            value=jedis.get(key);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            //返回到连接池中
            if (jedis!=null){
                jedis.close();
            }
            return value;
        }
    }
        public Boolean exists(String key) {
            Jedis jedis = null;
            try {
                jedis = jedisPool.getResource();
                return jedis.exists(key);

            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (jedis != null) {
                    jedis.close();
                }
            }
            return true;
        }
        public Long expire(String key,int seconds){
        Long count=new Long(0);
        Jedis jedis=null;
        try {
            jedis=jedisPool.getResource();
             count=jedis.expire(key,seconds);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if (jedis != null) {
                jedis.close();
            }
        }
        return count;
    }
    public Long ttl(String key){
        Long log=new Long(0);
        Jedis jedis=null;
        try {
            jedis=jedisPool.getResource();
            s =jedis.ttl(key);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if (jedis!=null){
                jedis.close();
            }
        }
        return log;
    }
    public void destroy(){
        if (!(jedisPool ==null || jedisPool.isClosed()))
            jedisPool.close();//关闭连接池
    }
}
